<?php
/**
 * Nweb Framework
 *
 * This script is protected by copyright. It's use, copying, modification
 * and distribution without written consent of the author is prohibited.
 *
 * @category    source
 * @package     pl.nweb.framework.db
 * @author      Krzysztof Kardasz <krzysztof.kardasz@gmail.com>
 * @copyright   Copyright (c) 2011 Krzysztof Kardasz
 * @license     http://www.gnu.org/licenses/lgpl-3.0.txt  GNU Lesser General Public
 * @version     3.0 $Id$
 * @link        http://code.google.com/p/nweb-framework/
 * @link        http://framework.nweb.pl
 */

namespace pl\nweb\framework\db\adapter;

/**
 * Rejestr połączeń z bazą danych
 * Umożliwia zdefiniowanie i przechowywaniu wielu połączeń do bazy danych
 *
 * @category    source
 * @package     pl.nweb.framework.db
 * @author      Krzysztof Kardasz <krzysztof.kardasz@gmail.com>
 * @copyright   Copyright (c) 2011 Krzysztof Kardasz
 * @version     3.0 $Id$
 */
class Registry
{
    /**
     * Rejestr
     *
     * @var array
     */
    private static $_registry = array();

    /**
     * Nazwa domyślnego połączenia
     */
    const NAME_DEFAULT = 'default';

    /**
     * Definiuje adapter w rejestrze
     *
     * @param \pl\nweb\framework\db\Adapter $adapter adapter połączenia
     * @param string $name nazwa połączenia
     * @return void
     */
    public static function set (\pl\nweb\framework\db\Adapter $adapter, $name = self::NAME_DEFAULT)
    {
        self::$_registry[$name] = $adapter;
    }

    /**
     * Zwraca flagę czy połączenie zostało zarejestrowane
     *
     * @param string $name nazwa połączenia
     * @return boolean
     */
    public static function has ($name = self::NAME_DEFAULT)
    {
        return isset(self::$_registry[$name]);

    }

    /**
     * Zwraca adapter
     *
     * @param string $name nazwa połączenia
     * @return \pl\nweb\framework\db\Adapter|null
     */
    public static function get ($name = self::NAME_DEFAULT)
    {
        if(isset(self::$_registry[$name])) {
            return self::$_registry[$name];
        }
        return null;
    }
}